package model;

import java.util.List;

public class Info {

    public static  class GetDeviceSettingOnlineCardInfoReq {
        public String device_num;

        public GetDeviceSettingOnlineCardInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceModeTimeInfoReq {
        public String device_num;

        public GetDeviceModeTimeInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceModeTime1InfoReq {
        public String device_num;

        public GetDeviceModeTime1InfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceModeWorkInfoReq  {
        public String device_num;

        public GetDeviceModeWorkInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceModePowerInfo  {
        public String device_num;

        public GetDeviceModePowerInfo(String device_num) {
            this.device_num = device_num;
        }
    }
    
    
    public static  class GetDeviceModePower1Info  {
        public String device_num;

        public GetDeviceModePower1Info(String device_num) {
            this.device_num = device_num;
        }
    }
    

    public static  class GetDeviceModeWork1InfoReq  {
        public String device_num;

        public GetDeviceModeWork1InfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class DeviceAddReq {
        public String device_num;

        public DeviceAddReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceSettingCoinInfoReq {
        public String device_num;

        public GetDeviceSettingCoinInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class DeviceDelReq {
        public String device_num;

        public DeviceDelReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class DeviceGetModeReq {
        public String device_num;

        public DeviceGetModeReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceSettingUserInfoReq {
        public String device_num;

        public GetDeviceSettingUserInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceSettingNotDisturbInfoReq {
        public String device_num;

        public GetDeviceSettingNotDisturbInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class DeviceFindOneReq {
        public String device_num;

        public DeviceFindOneReq(String device_num) {
            this.device_num = device_num;
        }
    }
    
    public static  class GetDeviceSettingOfflineCardInfoReq {
        public String device_num;

        public GetDeviceSettingOfflineCardInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }

    public static  class GetDeviceSettingSafetyInfoReq {
        public String device_num;

        public GetDeviceSettingSafetyInfoReq(String device_num) {
            this.device_num = device_num;
        }
    }
    

    public static  class FindMultiDevicesReq {
        public List<String> device_nums;

        public FindMultiDevicesReq(List<String> device_nums) {
            this.device_nums = device_nums;
        }
    }


    public static class DeviceFindListReq {
        public String device_num;  // 设备编号
        public int page;          // 页码
        public int page_size;      // 页数
        public int device_type;    // 设备类型 设备类型 0普通慢充款 1功率慢充款 2电量慢充款 3快充款 4功率款10 5电量款20 6两路功率慢充 8普通功率款 9lora网关 10lora节点 11功率款10C 12汽车交流桩70 13汽车慢充桩 18汽车交流桩双枪 17汽车快充桩 19两路功率款-10A 20两路功率款-16A 21汽车家用充电桩
        public String iot_phone;   // 物联网卡号
    
        public DeviceFindListReq(
            String device_num,
            int page,
            int page_size,
            int device_type,
            String iot_phone
        ) {
            this.device_num = device_num;
            this.page = page;
            this.page_size = page_size;
            this.device_type = device_type;
            this.iot_phone = iot_phone;
        }
    }

    public static class DeviceSaveModeReq {
        public String device_num; // 设备编号
        public int charge_mode; // 充电模式: 0 时间模式; 1 电量模式; 2 功率模式; 7 时间模式2; 8 电量模式2; 9 功率模式2
        public int charge_type; // 设备充电类型: fixed固定 custom自定义
        public List<String> charge_value; // 收费类型 数组
        public int max_power; // 最大功率
        public int start_fee; // 起充金额 (单位: 分)
        public int max_pay_fee; // 最大金额 (单位: 分)
        public List<Integer> payment_value; // 每档总的金额 (单位: 分)
        public List<Integer> time_value; // 每档总的时间 (单位: 秒)
        public int work_charge; // 电费 (单位: 分/度)
        public int work_charge_four_digit; // 电费 (四位数，如 10000 代表 1 元/度)
        public List<Integer> power_value; // 功率时间段
        public List<Integer> price_value; // 支付金额段
        public int check_time; // 功率检测时间
        public int inc_time; // 结算进位时间
        public int type; // 设置类型: 0 基础设置; 1 高级设置
        public int count_mode; // 功率模式计费模式
        public String display_delay; // 延迟显示时间 (0 表示不延迟显示, 最大 60s)
        public String is_not_disturb; // 是否设置免打扰: 0 未设置; 1 设置
        public String not_disturb_start; // 免打扰开始时间
        public String not_disturb_end; // 免打扰结束时间
        public int not_disturb_volume; // 免打扰音量
        public int is_outage; // 是否禁止断电: 0 不禁止; 1 禁止
        public int auto_off_wait_time; // 断电等待时间
        public int auto_off_lower_power; // 断电下限功率
        public String floating_charge_time; // 浮充时间
        public int floating_charge_power; // 浮充功率
        public int whether_refund; // 是否可退款: 0 不可退款; 1 可退款
        public int is_free_charge; // 是否免费充电: 0 付费充电; 1 免费充电
        public int detect_time; // 端口预检测时间
    
        // 构造函数
        public DeviceSaveModeReq(
            String device_num,
            int charge_mode,
            int charge_type,
            List<String> charge_value,
            int max_power,
            int start_fee,
            int max_pay_fee,
            List<Integer> payment_value,
            List<Integer> time_value,
            int work_charge,
            int work_charge_four_digit,
            List<Integer> power_value,
            List<Integer> price_value,
            int check_time,
            int inc_time,
            int type,
            int count_mode,
            String display_delay,
            String is_not_disturb,
            String not_disturb_start,
            String not_disturb_end,
            int not_disturb_volume,
            int is_outage,
            int auto_off_wait_time,
            int auto_off_lower_power,
            String floating_charge_time,
            int floating_charge_power,
            int whether_refund,
            int is_free_charge,
            int detect_time
        ) {
            this.device_num = device_num;
            this.charge_mode = charge_mode;
            this.charge_type = charge_type;
            this.charge_value = charge_value;
            this.max_power = max_power;
            this.start_fee = start_fee;
            this.max_pay_fee = max_pay_fee;
            this.payment_value = payment_value;
            this.time_value = time_value;
            this.work_charge = work_charge;
            this.work_charge_four_digit = work_charge_four_digit;
            this.power_value = power_value;
            this.price_value = price_value;
            this.check_time = check_time;
            this.inc_time = inc_time;
            this.type = type;
            this.count_mode = count_mode;
            this.display_delay = display_delay;
            this.is_not_disturb = is_not_disturb;
            this.not_disturb_start = not_disturb_start;
            this.not_disturb_end = not_disturb_end;
            this.not_disturb_volume = not_disturb_volume;
            this.is_outage = is_outage;
            this.auto_off_wait_time = auto_off_wait_time;
            this.auto_off_lower_power = auto_off_lower_power;
            this.floating_charge_time = floating_charge_time;
            this.floating_charge_power = floating_charge_power;
            this.whether_refund = whether_refund;
            this.is_free_charge = is_free_charge;
            this.detect_time = detect_time;
        }
    }

}


